package com.eshore.norm.pojo.po;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author HJ
 * @date 2024/1/9 15:41
 */
@NoArgsConstructor
@Data
public class NormAvailabilityZonePO {
    @JsonProperty("message")
    private String message;
    @JsonProperty("content")
    private List<ContentDTO> content;
    @JsonProperty("status")
    private Integer status;
    @JsonProperty("total")
    private Integer total;
    @JsonProperty("timestamp")
    private String timestamp;

    @NoArgsConstructor
    @Data
    public static class ContentDTO {
        @JsonProperty("availabilityZoneInfo")
        private List<AvailabilityZoneInfoDTO> availabilityZoneInfo;

        @NoArgsConstructor
        @Data
        public static class AvailabilityZoneInfoDTO {
            @JsonProperty("hosts")
            private Object hosts;
            @JsonProperty("zoneName")
            private String zoneName;
            @JsonProperty("zoneState")
            private ZoneStateDTO zoneState;

            @NoArgsConstructor
            @Data
            public static class ZoneStateDTO {
                @JsonProperty("available")
                private Boolean available;
            }
        }
    }


//
//    @JsonProperty("availabilityZoneInfo")
//    private List<AvailabilityZoneInfoDTO> availabilityZoneInfo;
//
//    @NoArgsConstructor
//    @Data
//    public static class AvailabilityZoneInfoDTO {
//        @JsonProperty("hosts")
//        private HostsDTO hosts;
//        @JsonProperty("zoneName")
//        private String zoneName;
//        @JsonProperty("zoneState")
//        private ZoneStateDTO zoneState;
//
//        @NoArgsConstructor
//        @Data
//        public static class HostsDTO {
//            @JsonProperty("conductor")
//            private ConductorDTO conductor;
//            @JsonProperty("scheduler")
//            private SchedulerDTO scheduler;
//
//            @NoArgsConstructor
//            @Data
//            public static class ConductorDTO {
//                @JsonProperty("nova-conductor")
//                private NovaconductorDTO novaconductor;
//
//                @NoArgsConstructor
//                @Data
//                public static class NovaconductorDTO {
//                    @JsonProperty("active")
//                    private Boolean active;
//                    @JsonProperty("available")
//                    private Boolean available;
//                    @JsonProperty("updated_at")
//                    private Object updatedAt;
//                }
//            }
//
//            @NoArgsConstructor
//            @Data
//            public static class SchedulerDTO {
//                @JsonProperty("nova-scheduler")
//                private NovaschedulerDTO novascheduler;
//
//                @NoArgsConstructor
//                @Data
//                public static class NovaschedulerDTO {
//                    @JsonProperty("active")
//                    private Boolean active;
//                    @JsonProperty("available")
//                    private Boolean available;
//                    @JsonProperty("updated_at")
//                    private Object updatedAt;
//                }
//            }
//        }
//
//        @NoArgsConstructor
//        @Data
//        public static class ZoneStateDTO {
//            @JsonProperty("available")
//            private Boolean available;
//        }
//    }
}
